const jwt = require("jsonwebtoken")

const secretKey = "QWQ"
const expiresIn = 60 * 60 * 24 * 7

var jwts = {}

//生成jwt
jwts.generateToken = (data) => {
    const token = jwt.sign({
        data
    }, secretKey, {
        expiresIn
    })
    return token
}

//解析jwt
jwts.verifyToken = (token) => {
    return jwt.verify(token, secretKey, (err, decoded) => {
        if (err) {
            if (err.message !== "jwt must be provided") {
                // console.log(`TokenError:${err.message}`);
            }
            return ;
        }
        return decoded.data
    })
}
// // 解析jwt
// jwts.verifyToken = (token) => {
//     return new Promise((resolve, rejeve) => {
//         let info = jwt.verify(token, secretKey, (err, decoded) => {
//             if (err) {
//                 if (err.message !== "jwt must be provided") {
//                     // console.log(`TokenError:${err.message}`);
//                 }
//                 return ;
//             }
//             return decoded.data
//         })
//         resolve(info)
//     })
// }


//计算剩余时间
jwts.tokenExp = (token) => {
    let verify = verifyToken(token);
    let time = parseInt((new Date().getTime()) / 1000);
    return `剩余${verify.exp - time}秒`
}

module.exports = { jwts, secretKey }